Advances in telecommunications technology have enabled faster and more accurate location of users carrying mobile devices. Examples of such technology are described in U.S. Pat. Nos. 6,477,362 and 6,477,379, both issued on Nov. 5, 2002, which patents are incorporated herein by reference in their entirety. These patents respectively describe systems for directing emergency services to a user based on her or his location and for locating a mobile device with the aid of two base stations.
Global Positioning Systems (GPS) receivers are described in several publications and references, such as the U.S. Pat. No. 5,528,248, issued on Jun. 18, 1996, which is hereby incorporated by reference herein in its entirety. This patent discloses a personal Digital Location Assistant based on a GPS Smart Antenna and a computing device.
GPS utilizes signals transmitted by a number of in-view satellites to determine the location of a GPS antenna which is connected to a receiver. Each GPS satellite transmits two coded L-band carrier signals which enable some compensation for propagation delays through the ionosphere. Each GPS receiver contains an almanac of data describing the satellite orbits and uses ephemeris corrections transmitted by the satellites themselves. Satellite to antenna distances may be deduced from time code or carrier phase differences determined by comparing the received signals with locally generated receiver signals. These distances are then used to determine antenna position. Only those satellites which are sufficiently above the horizon can contribute to a position measurement, the accuracy of which depends on various factors including the geometrical arrangement of the satellites at the time when the distances are determined.
Distances measured from an antenna to four or more satellites enable the antenna position to be calculated with reference to the global ellipsoid WGS-84. Local northing, easting and elevation coordinates can then be determined by applying appropriate datum transformation and map projection. By using carrier phase differences in any one of several known techniques, the antenna location can be determined to an accuracy on the order of .+−0.1 cm.
Locations may be specified by various means, both actual and representational, including geocodes, centroids, and street vectors/segments. These and other terms are used by various technologies to provide systems and methods for delivering spatially-dependent services.
A geocode is a specification of a position using a suitable coordinate system and at a granularity that is sufficient for a particular application. For example, a geocode specifying a latitude and a longitude specifies a position on the surface of the earth. A geocode may also specify a height above the surface of the earth. A geocode encompasses providing spatial information in a form other than specifying the longitude and the latitude. Other examples of geocodes include postal centroids that are associated with areas sharing a common zip code. A centroid is a geographic center of an entire area, region, boundary, etc. for which the specific geographic area covers. A familiar example is the association between a centroid and a postal code, such as the ZIP codes defined and used by the United States Postal Service.
Street vectors are address ranges assigned to segments of individual streets. Street vectors assist in displaying digitized computer-based street maps. Often, street vectors appear as left and right side address ranges, and may be also used for geocoding a particular address to a particular street segment.
Geocoding is described in U.S. Pat. No. 6,101,496 issued on Aug. 8, 2000, and assigned to the assignee of the present application, which patent is incorporated herein by reference in its entirety. In the context of spatially meaningful databases, geocoding is the act, method or process of assigning x and y coordinates (usually but not limited to latitude and longitude) to records, lists and files containing location information (full addresses, partial addresses, zip codes, census FIPS codes, etc.) for cartographic or any other form of spatial analysis or reference. Geocoding encompasses assigning spatial parameters to data to visualize information and exploring relationships based on spatial distribution. Some examples include census data or survey data that identify the residences of individuals with a particular income bracket, ethnicity, political affiliations, employment, and the like.
Geocoding is often performed by running ungeocoded (referred to hereafter as “raw data”) information such as a list of customers through software and/or data which performs table lookup, fuzzy logic and address matching against an entire “library” of all known or available addresses (referred to hereafter as “georeferenced library”) with associated x,y location coordinates.
A georeferenced library may be compiled from a number of varied sources including US Census address information and US postal address information, along with Zip Code boundaries and other various sources of data containing geographic information and/or location geometry. If a raw data address cannot be matched exactly to a specific library street address (known as a “street level hit”), then an attempt may be made to match the raw data address to geographic hierarchy of point, line or region geography of ever decreasing precision until a predetermined tolerance for an acceptable match is met. The geographic hierarchy to which a raw data record is finally assigned is also known as the “geocoding precision.” Geocoding precision tells how closely the location assigned by the geocoding software matches the true location of the raw data. Geocoding technology generally provides for two main types of precision: street level and postal ZIP centroid. Street level precision is the placement of geocoded records at the street address. Street level precision attempts to geocode all records to the actual street address. In all likelihood, some matches may end up at a less precise location such as a ZIP centroid (ZIP+4, ZIP+2, or ZIP code) or shape path (the shape of a street as defined by points that make up each segment of the street.
One form of spatial indexing for storing and accessing location sensitive information in databases is disclosed by U.S. Pat. No. 6,363,392 issued on Mar. 26, 2002, which is hereby incorporated by reference it its entirety. This patent uses quad keys to provide a flexible, web-sharable database with proximity searching capability. The process for generating quad keys begins with geocoding where a description of a geographic location is converted into a longitude and latitude, which may be represented as integers at some resolution. Then, a quad key is generated in binary form, with the bits interleaved (most significant bit (MSB) from x, followed by MSB from y, followed by next-MSB from x, next-MSB from y, etc.).
Various technologies for providing location information include triangulation using radio signals, global positioning systems (“GPS”), and other technologies described in U.S. Pat. Nos. 5,528,248 and 6,477,379. U.S. patent application Ser. No. 10/159,195 filed on May 31, 2002 discloses a method and system for obtaining geocodes corresponding to addresses and addresses corresponding to geocodes. This application claims the benefit of the disclosure and filing date of U.S. Provisional Patent Application No. 60/256,103 filed on May 31, 2001. These patent applications are also incorporated herein by reference in their entirety. These and other means for determining position, including those developed subsequent to this invention, may be used to provide location information.
In another aspect, it should be noted that the term “interface” is commonly used in describing software and devices. For clarity, as used herein the term “interface” differs from a “user interface” in that a user interface is a presentation made to a user offering various choices, information, and operable elements such as buttons, knobs, and the like. A user interface may include physical components as well as transient displayed information. An interface, in contrast, in the context of object oriented (“OO”) languages represents methods that are supported either by the interface itself in some OO languages, or provided in the interface as abstract methods which are provided by classes implementing the interface. A familiar example of the latter kind of OO paradigms is JAVA, which allows platform independent coding of software.